
import { Component, OnInit,ViewChild} from '@angular/core';
import {DrawService,TipService, ModalTipService,DcTablePagingPipe,ModalService,HttpService} from 'itcloud-plugin';
import { BrowserModule } from '@angular/platform-browser';


import { ReplyNoticeComponent } from './reply-notice/reply-notice.component';
import { GetPathService } from '../get-path.service';

@Component({
  selector: 'app-my-todo',
  templateUrl: './my-todo.component.html',
  styleUrls: ['./my-todo.component.css'],
  entryComponents: [
    ReplyNoticeComponent
    //DrawComponent
  ] 
})
export class MyTodoComponent implements OnInit {
    //分页
    pager;
    param:any = {
      searchType:1,
      limit: 10,
      page: 1
    }
    cookies:any
    tableId: string;
    tableLoading: boolean;
    tableOptions = {
        // maxHeight: '200px',
        // minHeight: '100px',
        checkbox: false,
        loading: true,
        showIndex: false
    };
    constructor(
        private drawService: DrawService,
        private modal: ModalService,
        private http:HttpService,
        private GetPathService:GetPathService,
        private tipService:TipService
    ) {}

    headerConfig = [
        {
            field: 'infoCode', // 显示字段
            title: '公告编号', // 表头显示
            canSort: false, // 是否可排序
            width: '15%', // 单元格宽度
            filter: { // 过滤配置
                type: 'text', // 过滤类型
                defaultText: '',
                offset: 'right', // 过滤框是否右偏移
                fn: (filter) => { // 过滤回调方法
                    //console.log(filter, 'infoCode','公告编号');
                    this.param.infoCode = filter;
                    this.getDataInit();
                }
            },
            hideTitle: true,
        }, 
        {
            field: 'infoName', // 显示字段
            title: '公告主题', // 表头显示
            width: '25%', // 单元格宽度
            hideTitle: false,
            flex: '1', // 单元格自适应宽度优先级,
            filter: { // 过滤配置
                type: 'text', // 过滤类型
                offset: 'right', // 过滤框是否左偏移
                fn: (filter) => { // 过滤回调方法
                  //console.log(filter, 'infoName',"公告主题");
                  this.param.infoName = filter;
                  this.getDataInit();
                }
            },
            /*alignTd: 'center',
            alignTh: 'center',*/
        }, 
        {
            field: 'createName', // 显示字段
            title: '创建人', // 表头显示
            canSort: false, // 是否可排序
            width: '10%', // 单元格宽度
            isGroup: false,
            hideHeaderGroup: false,
            hideTitle: true,
            filter: { // 过滤配置
              type: 'text', // 过滤类型
              offset: 'right', // 过滤框是否左偏移
              fn: (filter) => { // 过滤回调方法
                //console.log(filter, 'createName');
                this.param.createName = filter;
                this.getDataInit();
              }
                
            },
            /*alignTd: 'center',
            alignTh: 'center',*/
        }, 
        {
            field: 'infoType', // 显示字段
            title: '类型', // 表头显示
            canSort: false, // 是否可排序
            width: '15%', // 单元格宽度
            filter: { // 过滤配置
                type: 'checkList',
                  optionList: [
                      {
                          checked: false,
                          name: '公告通知',
                          type:0
                      }, {
                          checked: false,
                          name: '信息交流',
                          type:1
                      }
                  ],
                  option: {
                    maxHeight: '150px',
                    filterKey: 'name'
                  },
                  fn: (filter) => {
                      //console.log(filter, 'infoType');
                      if(filter.length!==0){
                        this.param.type = (filter.length>1 ? '' : filter[0].type);
                      }
                      this.getDataInit();
                  }
            },
            hideTitle: true,
            /*alignTd: 'center',
            alignTh: 'center',*/
        }, 
        {
            field: 'closeTime', // 显示字段
            title: '关闭时间', // 表头显示
            canSort: true, // 是否可排序
            width: '15%', // 单元格宽度
            hideTitle: true,
            /*alignTd: 'center',
            alignTh: 'center',*/
        }, 
        {
            field: 'action', // 显示字段
            title: '操作', // 表头显示
            width: '20%', // 单元格宽度
            hideTitle: true
        }
    ];
    tableData = [];
    @ViewChild('tableNew') tableNew;

    ngOnInit() {
        this.cookies= this.getCookie('userId');
        this.param.userId= this.cookies;
        //初始化分页
        this.pager = {
          total: 0,
          limit: 10,
          page: 1
        };
        //请求数据
        this.getDataInit();
        // setTimeout(() => {
        //   this.tableNew.deleteDefaultFilter('desc');
        // }, 5000);
    }
    getCookie(name){
      let arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
      if(arr=document.cookie.match(reg))return decodeURI(arr[2]);
      else return null;
    }

    getDataInit(){
      this.http.getData({
        url: this.GetPathService.AjaxPath.bulletinServer+'/mineTodo/mineTodoList',
        search: this.param,
      }).subscribe(res => {
        if(res['returnCode'] === '0000'){
          this.tableOptions.loading = false;
          this.pager.total= res['result'].allRows;
          this.disposeData(res['result'].result);
        }else{
          this.tipService.show({ type: 'error', title: res['returnMessage']});
        }
      }, err => {this.tipService.show({ type: 'error', title: "加载失败"}); })
    }
    //处理数据
    disposeData(data){
      for(let i=0;i<data.length;i++){
        data[i].closeTime = this.timeStamp(data[i].closeTime);
        data[i].infoTypeName = (data[i].infoType === 0 ? '公告通知' : '信息交流');
      }
      this.tableData = data;
    }
    //时间戳转换成时间
    timeStamp(timestamp){
      let Y,M,D,h,m,s;
          let date = new Date(timestamp);//时间戳为10位需*1000，时间戳为13位的话不需乘1000
          //var date = new Date(timestamp * 1000);//时间戳为10位需*1000，时间戳为13位的话不需乘1000
          Y = date.getFullYear() + '-';
          M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-';
          D = (date.getDate() < 10 ? '0'+date.getDate() : date.getDate()) + ' ';
          h = (date.getHours() < 10 ? '0'+ date.getHours() : date.getHours()) + ':';
          m = (date.getMinutes() < 10 ? '0'+ date.getMinutes() : date.getMinutes()) + ':';
          s = (date.getSeconds()< 10 ? '0'+ date.getSeconds() : date.getSeconds());
          return Y+M+D+h+m+s;
    }
    // 切换页码
    nowPageChange(ev) {
      this.pager.page = ev;
      this.param.page = ev;
      this.getDataInit();
      // this.getAdviceTableData();
    }
    //排序
    sortEvent(ev) {
        //console.log('sort1111', ev);
        this.pager = {
          total: 0,
          limit: 10,
          page: 1
        };
        this.param.sortField= ev.field;
        this.param.sorting= (ev.sort ==='desc' ? '-1' : (ev.sort === 'asc' ? '1' : ''));
        this.getDataInit();
    }
    //获取节点
    findItemByKey(dataList) {
      let title = dataList.infoType ===1 ? ' 回复公告': ' 查看公告'
      const result = this.drawService.open({
        handler: (type) => { // 传入侧滑component的方法，在component中用@Input() handler:any;接收
          result.closeComponent();
          this.getDataInit();
        },
        data: dataList,
        component: ReplyNoticeComponent, // 侧滑内容的component
        iconCls: '',
        title: title, // 侧滑是否有title
        padding: '10px 0 0 0', // 侧滑内容的padding值
        width: '80%', // 侧滑宽度
        hiddenScroll: false, // 隐藏侧滑的滚动条，使用程序自己的滚动条
      });
    }
 
      //checkEvent选中节点
      // checkEvent(ev: any) {
      //   console.log('demo checkEvent', ev);;
      // }
      //
      // expandAllEvent(ev: any) {
      //   if (ev.expand) {
      //     this.tableData = [
      //       {
      //         id: '1',
      //         name: 'namenamenamenamename1',
      //         desc: '描述1',
      //         isParent: true,
      //         expand: false,
      //         children: [
      //           {
      //             id: '1_1',
      //             name: 'name1-1',
      //             desc: 'name1的子节点',
      //           }
      //         ]
      //       }, {
      //         id: '2',
      //         name: 'name3',
      //         desc: '描述3'
      //       }, {
      //         id: '3',
      //         name: 'name2',
      //         desc: '描述2',
      //         readonly: true
      //       }, {
      //         id: '4',
      //         name: 'name4',
      //         desc: '描述4'
      //       }
      //     ];
      //   } else {
      //     this.tableData = [
      //       {
      //         id: '1',
      //         name: 'namenamenamenamename1',
      //         desc: '描述1',
      //         isParent: true,
      //       }, {
      //         id: '2',
      //         name: 'name3',
      //         desc: '描述3'
      //       }, {
      //         id: '3',
      //         name: 'name2',
      //         desc: '描述2',
      //         readonly: true
      //       }, {
      //         id: '4',
      //         name: 'name4',
      //         desc: '描述4'
      //       }
      //     ];
      //   }
      //   console.log('expandAllEvent', ev);
      // }
      //添加节点
      // expandItemEvent(ev: any) {
      //   console.log('expandItemEvent', ev);
      //   this.tableNew.insertData([
      //     {
      //       id: (ev.parent.id + '_' + (ev.parent.children && (ev.parent.children.length + 1) || '1')),
      //       name: ev.parent.name + '_' + (ev.parent.children && (ev.parent.children.length + 1) || '1'),
      //       desc: 'name1的子节点',
      //       isParent: true
      //     }
      //   ], ev.parent);
      // }
    
    
 
  
    //获取父节点
    // findParentByKey() {
    //   if (this.tableId) {
    //     console.log(this.tableNew.findParentByKey('id', this.tableId));
    //   }
    // }
    //获取父节点S
    // findParentsByKey() {
    //   if (this.tableId) {
    //     console.log(this.tableNew.findParentsByKey('id', this.tableId));
    //   }
    // }
    //获取选中的节点
    // getCheckedsItem() {

    //   console.log(this.tableNew.getCheckedsItem());
    // }
    //删除节点
    // deleteDataByKey() {
    //   this.tableId && this.tableNew.deleteDataByKey('id', this.tableId);
    // }
    //更新节点
    // updateDataByKey() {
    //   this.tableId && this.tableNew.updateDataByKey('id', this.tableId, {
    //     name: 'xxxx',
    //     desc: 'yyyyy'
    //   });
    // }



  
  
}
